package com.sj.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.sj.entity.Blog;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.ArrayList;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author 小七
 * @since 2021-07-30
 */
public interface BlogService extends IService<Blog> {

    /**
     * 分页条件查询博客列表
     *
     * @param blog    查询条件
     * @param current 当前页
     * @param size    每页显示条数
     * @return 博客信息
     */
    IPage<Blog> listBlogByPage(Blog blog, Integer current, Integer size);

    /**
     * 绑定博客与标签
     *
     * @param wantBindBlogTagIds 需要绑定到博客上的标签id
     * @param id                 博客id
     * @return 是否成功
     */
    boolean bindTags(ArrayList<Integer> wantBindBlogTagIds, Integer id);

    /**
     * 判断标签是否与博客绑定
     *
     * @param tagId  标签id
     * @param blogId 博客id
     * @return 是否绑定
     */
    boolean tagIsBindBlog(Integer tagId, Integer blogId);

    /**
     * 根据博客id查询博客详情
     *
     * @param blogId     博客id
     * @param publicType 公开类型
     * @param userId     用户id
     * @return 博客详情
     */
    Blog getBlogDetail(Integer blogId, Integer publicType, Integer userId);

    /**
     * 解除标签和博客的绑定
     *
     * @param tagId  标签id
     * @param blogId 博客id
     * @return 是否成功
     */
    boolean deleteTagBindBlog(Integer tagId, Integer blogId);
}
